Mysql & Mariadb
Installation du Serveur MariaDB
sudo apt install mariadb-server
Par défaut, le mot de passe administrateur MySQL/MariaDB sera le même que celui de votre utilisateur système. Pour personnaliser la sécurisation de notre base de données, voici la commande à exécuter :
-
mysql_secure_installation
Change the root password [Y/n] => y // changez le mot de passe
New password // Entrez votre mot de passe « root »
Remove anonymous users [Y/n] => y // Désactivez ensuite les connexions anonymes
Disallow root login remotely? [Y/n] => y // Désactivez la connexion en « root » depuis une connexion distante
Remove test database and access to it? [Y/n] => y // effacer la base de données de test créée par défaut
Reload privilege tables now? [Y/n] => y // Il reste à charger les nouveaux paramètres -
Pour tester l'accès à notre base de données, voici la commande à utiliser dans notre terminal :
mysql -u root –p
show databases
exit
Percona-Toolkit Installation
Percona Toolkit, largement utilisé dans les environnements MySQL et Percona Server, est une collection d'outils qui aide les administrateurs de bases de données à gérer leurs tâches quotidiennes. Ces outils offrent aux utilisateurs flexibilité et contrôle en matière de performances, de fiabilité et de maintenance.
sudo apt install percona-toolkit
-
pt-show-grants
Copier la ligne mysql et accordez les autorisations à l'utilisateur student.
GRANT ALL PRIVILEGES ON *.* TO `student`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION;
Désormais, student peut se connecter directement à MySQL sans avoir besoin d'être root.**
Mysql socket & reseau
Note : Vous pouvez basculer vers l'utilisateur MySQL en utilisant la commande suivante :
su – mysql -s /bin/bash
mysql
: Se connecte directement en utilisant le socket.
mysql -h localhost
: Se connecte via le réseau.
mysql -u test -p # Se connecter avec le nom d'utilisateur test, entrer le mot de passe (socket)
mysql -u test -h localhost -p # Se connecter avec le nom d'utilisateur test, entrer le mot de passe (réseau)
Création du user et database
Nous avons créé un utilisateur nommé "Incubator" et avons également créé une base de données nommée "incubator". Ensuite, nous avons accordé à l'utilisateur "incubator" tous les privilèges dans la base de données "incubator".
CREATE USER 'incubator'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE incubator;
GRANT ALL PRIVILEGES ON incubator.* TO 'incubator'@'localhost';
Sauvegarder Les Databases
mysqldump pingpong > dump.sql #Pour sauvegarder
mysql < dump.sql # Pour restaurer
sftp student@fdfkdfdf.
get dump.sql # Téléchargez ce fichier via SSH
Nous pouvons automatiser le processus de sauvegarde des données MySQL avec un script simple de trois manières :
- Utilisation de Systemd/Service
- Utilisation de GitHub Action runner
- Utilisation de crontab
Exemple de fichier backup.sh :
#!/bin/bash
# Spécifiez les informations de connexion à la base de données
DB_NAME="pingpong"
# Spécifiez le répertoire de sauvegarde
BACKUP_DIR="/home/student/backup"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"
# Commande pour effectuer la sauvegarde et la compression
mysqldump -A | gzip > $BACKUP_FILE
# Supprimer les sauvegardes de plus de 10 jours
find -name '*.sql.gz' -mtime +10 -delete-
# Vérifiez si la sauvegarde et la compression ont réussi
if [ $? -eq 0 ]; then
echo "Sauvegarde de toutes les bases de données effectuée avec succès dans $BACKUP_FILE"
else
echo "Échec de la sauvegarde et de la compression"
exit 1
fi
- Ajouter une tâche cron.
S'exécute toutes les heures
0 * * * * /chemin/vers/votre/backup.sh